FlyWeb

From MozillaWiki
Jump to navigation Jump to search

Note: This project is not being actively maintained. Information below is provided for archival purposes.

FlyWeb.png

Program Description

The web already powers the world's email, media, shopping, and more. Interacting with these things is a breeze because they all use the web. What if the electronics around us were the same?

Meet FlyWeb. FlyWeb is a very simple idea at its core. Instead of phones interacting only with the cloud, they can discover and interact with electronics around them that are running empty web clients, such as TV's, projectors, game consoles, etc. The electronics come to life when connected to phones. The key here is that either the phones serve web apps to these electronics, or the electronics serve web apps to the phones.


Why?

The connected devices market is ready to explode. As the market grows, much like the early internet, these devices are being segregated into walled gardens of one-off proprietary initiatives, such as AirPlay, the Google Cast API, etc. These solutions not only lock their users into specific vendor ecosystems -- to the benefit of those vendors and detriment of their users -- but also require significant investment to solve each use case.

Many of these connected devices initiatives have common underlying platform needs:

  • to discover and connect devices together,
  • enable bi-directional communication,
  • allow arbitrary, but secure code execution on each side,
  • and require knowledge of as few details of a device's peers as possible.

The web is the best platform for serving all of these needs. Indeed, it has been designed for them for over a decade.

User Stories and Acceptance Criteria

Coming soon!

Program Status

Milestone Date Status
MozFest Demo 11/6-7/2015 DONE
Mozlando Demo 12/7-11/2015 DONE
Platform Development 1/2016 ON TARGET
Land on Master 6/2016 ON TARGET
London All Hands Conference 6/2016 ON TARGET

Program Timeline

FWMilestones.png


Detailed Milestones

Milestone Status
FlyWeb internal (privileged) APIs written up in WebIDL and implemented. DONE
FlyWebDiscoveryManager WebIDL class that serves as an abstract fronted for service-discovery across multiple transports. DONE
An internet-and-mdns-specific backend implementation for FlyWebDiscoveryManager that lets the APIs discover ‘_http._tcp’ and ‘_flyweb._tcp’ services advertised on the local network via MDNS (Bonjour). DONE
Integration with the firefox UI to present a toolbar button that lists discovered FlyWeb services in a menu. DONE
When the user selects a menu item, open a tab that browses to the service (currently using an ip-based URL). DONE
Implementation of initial ‘publishServer’ and ‘connectToService’ web APIs exposed to content. DONE
Addition of a temporary “FlyWeb” protocol (flyweb://) to enable testing and mockup of an http-like server embedded in gecko DONE
Implement anonymous, browser-based naming of services. For security purposes, the browser will have to assign a token hostname to a service as needed, and route that hostname to the service’s IP address (bypassing normal DNS mechanics). DONE
Modify the “publishServer” Web API to hook into FlyWeb’s backend service publishing API. DONE
Modify the "publishServer" API to implement a http server rather than the custom flyweb:// protocol. DONE
Modify the "publishServer" API to implement a http server rather than the custom flyweb:// protocol. ON TARGET
Implement JS fallback mDNS implementation (Android, Windows) ON TARGET
Draft web API ON TARGET
Draft protocol spec for FlyWeb ON TARGET
Wi-Fi Direct transport implementation on Android ON TARGET
Implement Certificate protocol for encrypted communication ON TARGET
Implement Stable Naming based on Certs ON TARGET
All-Hands Conference Demo implementation ON TARGET
Maker community for IoT use cases ON TARGET
Web dev community for Peer-2-Peer use cases ON TARGET

MVP Scope

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 406 [1] => Not Acceptable ) ) 1



Program Stakeholders

Role Name IRC
EPM Nicole Yee nicoleyee
EM Jonas Sicking sicking
TL Kannan Vijayan djvj
Engineering Justin D'Arcangelo justindarc
  • EPM = Engineering Program Manager
  • EM = Engineering Manager
  • TL = Tech Lead

Reference Links

Demo Videos

Proposal

Security


Communication

Video Conferencing - Vidyo Room

Quick link to join with the Vidyo app (prompts install if needed)

We have our own Vidyo room for meetings. Contributors and non-employees are welcome to attend all meetings. Here are the full details for joining:

Project Management

Trello dashboard

We use Trello for project management. All ongoing tasks are listed there.

Meetings

Calendar

Calendar

The FlyWeb team has a public calendar with every team meeting.

Instructions for Adding to your Calendar

  1. Open the calendar.
  2. Click on the "+ Google Calendar" button in the very bottom right of your screen.

You can also use the XML and ICS methods, but these are not recommended.

Note: The "Find a Time" feature will not work for other people if you import this calendar. As a consequence, others will not see that you are unavailable when attending a FlyWeb meeting. We suggest either accepting this, or adding the meetings to your main calendar as well.

Standups

We have two weekly standups, with both times available on the Public Calendar. These standups happen in the FlyWeb Vidyo room.

All meeting minutes

2016

2015-Q3

See Also

  • User and Market Research: Due to the confidential nature of the interviews, and our respect for our interviewees' privacy, we are restricting access to this information.

Strategy Essays

Related Initiatives

Related APIs